import { Widget, _decorator, Node } from 'cc';
import { UIBase } from '../scriptBase/UIBase';
import { GameMgr } from '../manager/GameMgr';
import { Switcher } from '../uiExtend/Switcher';
import { Setting } from '../Setting';
import { AudioMgr } from '../manager/AudioMgr';
import { TransMgr } from '../manager/TransMgr';
import { UI } from '../enum/UI';
const { ccclass, property, requireComponent } = _decorator;

@ccclass('UIPause')
@requireComponent(Widget)
export class UIPause extends UIBase {

    private swBgm: Switcher = null
    private swSfx: Switcher = null

    protected onLoad(): void {
        this.swBgm = this.findComp('SwBgm', Switcher)
        this.swSfx = this.findComp('SwSfx', Switcher)
    }

    public onOpen(data?: any): void {
        GameMgr.Pause = true

        this.swBgm.IsOn = Setting.BgmEnabled
        this.swSfx.IsOn = Setting.SfxEnabled
    }

    public onClose(data?: any): void {
        GameMgr.Pause = false
    }

    protected onBtnCloseClick(): void {
        this.close()
    }

    protected async onBtnRestartClick() {
        await TransMgr.Inst.fadeIn()
        GameMgr.startGame()
        this.close()
        TransMgr.Inst.fadeOut()
    }

    protected async onBtnBackClick() {
        await TransMgr.Inst.fadeIn()
        GameMgr.quitGame()
        this.close()
        this.open(UI.Main)
        TransMgr.Inst.fadeOut()
    }

    protected onSwBgmClick(): void {
        Setting.BgmEnabled = !Setting.BgmEnabled
        if (Setting.BgmEnabled) {
            AudioMgr.playBgm()
        } else {
            AudioMgr.stopBgm()
        }
    }

    protected onSwSfxClick(): void {
        Setting.SfxEnabled = !Setting.SfxEnabled
    }

}


